- C 54%
- JavaScript 30%
- Python 16%
codewatch #
A Pebble watchface styled after the Claude Code terminal. A pixel creature lives on your screen; flick your wrist and it jumps, skips, sneezes or peeks in from off-screen, or a slash command types itself out with a live reading from your watch.
Targets Emery (Pebble Time 2) and Gabbro (Pebble Round 2).
Get it on the Pebble app store

Features #
- 14 creature animations, with squash and stretch, or over 40 slash commands: live stats (steps, sleep, heart rate, next alarm, battery, weather) plus some jokes
- Big time in the top border, and three status lines you choose: date, battery, steps, distance, calories, heart rate, sleep, next alarm, weather and more
- Status lines can show readings from Pebble plugins, or your favourites from the Pebble app
- Weather with no API key: conditions, today's high and low, tomorrow, and when the weather next changes
- A step goal bar, a Claude Code-styled settings page, and a startup screen
- Nothing moves until you flick, so it's easy on the battery
Install #
The released build is on the Pebble app store: https://apps.rePebble.com/c900b6becb16414f84e788ed
Minimum watch firmware is 4.44.3 since v2.4.0, which is built on SDK 4.44 so the plugin status lines work. Earlier releases needed 4.32.
Build #
Needs pebble-tool and a Pebble SDK.
pebble sdk install 4.44
pebble build --sdk 4.44 # one .pbw with Emery and Gabbro binaries
pebble install --emulator emery build/codewatch.pbw
- Build with SDK 4.44. Older SDKs don't write the manifest the plugin status lines need, so plugins silently fail.
- After changing a font's
characterRegex, a version, or a message key, runpebble cleanfirst. Incremental builds keep the old values. - To install on a real watch, use the developer connection in the Core Devices app:
pebble install --phone <phone-ip>. - The helper scripts (
preview.py,make_icons.py,make_banner.py,capture_store.py) use#!/usr/bin/env pebble-python. Put a Python that has Pillow on yourPATHunder that name. pebble-tool's own virtualenv Python works: a two-line wrapper thatexecs itspython3 "$@".
Layout #
src/c/is the watch side.codewatch.chas the face, status lines and slash commands;creature.chas the creature and its animations.src/pkjs/is the phone side: the settings page (Clay), weather, and plugin readings.appstore/has the store listing copy, screenshots and every released.pbw.make_*.py,capture_store.pyandpreview.pygenerate the icons, banner and screenshots.
Credits #
- Weather data by Open-Meteo.com, licensed CC BY 4.0.
- The Terminus monospace font, copyright (C) 2016
Dimitar Toshkov Zhekov and (C) 2017 Tilman Blumenbach, under the SIL Open Font License 1.1.
resources/fonts/Terminus.ttfis the unmodified TTF; a cut-down web copy is embedded insrc/pkjs/terminus.js. - The settings page uses Clay (MIT).
codewatch is an unofficial fan project. It is not affiliated with or endorsed by Anthropic. Claude and Claude Code are Anthropic's, and the creature is drawn in homage to Claude Code's.
Licence #
MIT, for the code in this repository.